<table class="configuration table table-bordered">
    <thead>
        <tr>
            <th class="text-left" style="width: 20%">Key</th>
            <th class="text-left" style="width: 15%">Default</th>
            <th class="text-left" style="width: 10%">Type</th>
            <th class="text-left" style="width: 55%">Description</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><h5>table.builtin-catalog-name</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">"default_catalog"</td>
            <td>String</td>
            <td>The name of the initial catalog to be created when instantiating a TableEnvironment.</td>
        </tr>
        <tr>
            <td><h5>table.builtin-database-name</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">"default_database"</td>
            <td>String</td>
            <td>The name of the default database in the initial catalog to be created when instantiating TableEnvironment.</td>
        </tr>
        <tr>
            <td><h5>table.dml-sync</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">false</td>
            <td>Boolean</td>
            <td>Specifies if the DML job (i.e. the insert operation) is executed asynchronously or synchronously. By default, the execution is async, so you can submit multiple DML jobs at the same time. If set this option to true, the insert operation will wait for the job to finish.</td>
        </tr>
        <tr>
            <td><h5>table.dynamic-table-options.enabled</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">true</td>
            <td>Boolean</td>
            <td>Enable or disable the OPTIONS hint used to specify table options dynamically, if disabled, an exception would be thrown if any OPTIONS hint is specified</td>
        </tr>
        <tr>
            <td><h5>table.generated-code.max-length</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">4000</td>
            <td>Integer</td>
            <td>Specifies a threshold where generated code will be split into sub-function calls. Java has a maximum method length of 64 KB. This setting allows for finer granularity if necessary. Default value is 4000 instead of 64KB as by default JIT refuses to work on methods with more than 8K byte code.</td>
        </tr>
        <tr>
            <td><h5>table.local-time-zone</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">"default"</td>
            <td>String</td>
            <td>The local time zone defines current session time zone id. It is used when converting to/from &lt;code&gt;TIMESTAMP WITH LOCAL TIME ZONE&lt;/code&gt;. Internally, timestamps with local time zone are always represented in the UTC time zone. However, when converting to data types that don't include a time zone (e.g. TIMESTAMP, TIME, or simply STRING), the session time zone is used during conversion. The input of option is either a full name such as "America/Los_Angeles", or a custom timezone id such as "GMT-08:00".</td>
        </tr>
        <tr>
            <td><h5>table.plan.compile.catalog-objects</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">ALL</td>
            <td><p>Enum</p></td>
            <td>Strategy how to persist catalog objects such as tables, functions, or data types into a plan during compilation.<br /><br />It influences the need for catalog metadata to be present during a restore operation and affects the plan size.<br /><br />This configuration option does not affect anonymous/inline or temporary objects. Anonymous/inline objects will be persisted entirely (including schema and options) if possible or fail the compilation otherwise. Temporary objects will be persisted only by their identifier and the object needs to be present in the session context during a restore.<br /><br />Possible values:<ul><li>"ALL": All metadata about catalog tables, functions, or data types will be persisted into the plan during compilation. For catalog tables, this includes the table's identifier, schema, and options. For catalog functions, this includes the function's identifier and class. For catalog data types, this includes the identifier and entire type structure. With this strategy, the catalog's metadata doesn't have to be available anymore during a restore operation.</li><li>"SCHEMA": In addition to an identifier, schema information about catalog tables, functions, or data types will be persisted into the plan during compilation. A schema allows for detecting incompatible changes in the catalog during a plan restore operation. However, all other metadata will still be retrieved from the catalog.</li><li>"IDENTIFIER": Only the identifier of catalog tables, functions, or data types will be persisted into the plan during compilation. All metadata will be retrieved from the catalog during a restore operation. With this strategy, plans become less verbose.</li></ul></td>
        </tr>
        <tr>
            <td><h5>table.plan.force-recompile</h5><br> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">false</td>
            <td>Boolean</td>
            <td>When false COMPILE PLAN statement will fail if the output plan file is already existing, unless the clause IF NOT EXISTS is used. When true COMPILE PLAN will overwrite the existing output plan file. We strongly suggest to enable this flag only for debugging purpose.</td>
        </tr>
        <tr>
            <td><h5>table.plan.restore.catalog-objects</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">ALL</td>
            <td><p>Enum</p></td>
            <td>Strategy how to restore catalog objects such as tables, functions, or data types using a given plan and performing catalog lookups if necessary. It influences the need for catalog metadata to bepresent and enables partial enrichment of plan information.<br /><br />Possible values:<ul><li>"ALL": Reads all metadata about catalog tables, functions, or data types that has been persisted in the plan. The strategy performs a catalog lookup by identifier to fill in missing information or enrich mutable options. If the original object is not available in the catalog anymore, pipelines can still be restored if all information necessary is contained in the plan.</li><li>"ALL_ENFORCED": Requires that all metadata about catalog tables, functions, or data types has been persisted in the plan. The strategy will neither perform a catalog lookup by identifier nor enrich mutable options with catalog information. A restore will fail if not all information necessary is contained in the plan.</li><li>"IDENTIFIER": Uses only the identifier of catalog tables, functions, or data types and always performs a catalog lookup. A restore will fail if the original object is not available in the catalog anymore. Additional metadata that might be contained in the plan will be ignored.</li></ul></td>
        </tr>
        <tr>
            <td><h5>table.resource.download.dir</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">System.getProperty("java.io.tmpdir")</td>
            <td>String</td>
            <td>Local directory that is used by planner for storing downloaded resources.</td>
        </tr>
        <tr>
            <td><h5>table.sql-dialect</h5><br> <span class="label label-primary">Batch</span> <span class="label label-primary">Streaming</span></td>
            <td style="word-wrap: break-word;">"default"</td>
            <td>String</td>
            <td>The SQL dialect defines how to parse a SQL query. A different SQL dialect may support different SQL grammar. Currently supported dialects are: default and hive</td>
        </tr>
    </tbody>
</table>
